@@ -158,6 +158,11 @@ class MainPresenter implements MainContract.Presenter,SyncTimeInteractor.SyncTim |
||
158 | 158 |
|
159 | 159 |
|
160 | 160 |
@Override |
161 |
+ public void onPhotoUploadStart(PhotoBean bean) { |
|
162 |
+ |
|
163 |
+ } |
|
164 |
+ |
|
165 |
+ @Override |
|
161 | 166 |
public synchronized void onPhotoUploaded(PhotoBean bean) { |
162 | 167 |
int position = sessionList.size()-bean.sessionSeq; |
163 | 168 |
if(position < 0 || position>=sessionList.size()){ |
@@ -69,6 +69,9 @@ public class UploadService extends Service implements UploadTask.OnPhotoUploadLi |
||
69 | 69 |
currentPhoto.uploadStatus = PhotoBean.UploadStatus.STATUS_UPLOADING; |
70 | 70 |
DBService.getInstance().updatePhotoBean(currentPhoto); |
71 | 71 |
new UploadTask(currentPhoto, this).executeOnExecutor(ThreadExecutor.getInstance().getExecutor()); |
72 |
+ if (listener != null) { |
|
73 |
+ listener.onPhotoUploadStart(currentPhoto); |
|
74 |
+ } |
|
72 | 75 |
} |
73 | 76 |
|
74 | 77 |
@Override |
@@ -111,6 +114,8 @@ public class UploadService extends Service implements UploadTask.OnPhotoUploadLi |
||
111 | 114 |
} |
112 | 115 |
|
113 | 116 |
public interface PhotoUploadListener { |
117 |
+ void onPhotoUploadStart(PhotoBean bean); |
|
118 |
+ |
|
114 | 119 |
void onPhotoUploaded(PhotoBean bean); |
115 | 120 |
|
116 | 121 |
void onPhotoUploadError(PhotoBean bean); |
@@ -98,28 +98,23 @@ public class PhotoRecyclerAdapter extends RecyclerView.Adapter<PhotoRecyclerAdap |
||
98 | 98 |
lp.width = width; |
99 | 99 |
lp.height = height; |
100 | 100 |
holder.photo.setLayoutParams(lp); |
101 |
- if (item.uploadStatus == PhotoBean.UploadStatus.STATUS_ERROR) { |
|
102 |
- holder.errorLayout.setVisibility(View.VISIBLE); |
|
103 |
- holder.retryImg.setOnClickListener(new View.OnClickListener() { |
|
104 |
- @Override |
|
105 |
- public void onClick(View view) { |
|
106 |
- Intent intent = new Intent(App.getAppContext(), UploadService.class); |
|
107 |
- intent.putExtra("photo", item); |
|
108 |
- App.getAppContext().startService(intent); |
|
109 |
- item.uploadStatus = PhotoBean.UploadStatus.STATUS_NO_BEGIN; |
|
110 |
- notifyItemChanged(position); |
|
111 |
- Toast.makeText(context, R.string.add_to_upload_queue, Toast.LENGTH_SHORT).show(); |
|
112 |
- } |
|
113 |
- }); |
|
114 |
- } else { |
|
115 |
- holder.errorLayout.setVisibility(View.GONE); |
|
116 |
- } |
|
117 | 101 |
long timeLeft = delay - (System.currentTimeMillis() - item.captureTime) / 1000; |
118 | 102 |
|
119 | 103 |
if (timeLeft < 0) { |
120 | 104 |
item.canDelete = false; |
121 | 105 |
if (item.uploadStatus == PhotoBean.UploadStatus.STATUS_ERROR) { |
122 |
- holder.uploadStatusText.setText(context.getString(R.string.upload_error)); |
|
106 |
+ holder.uploadStatusText.setText(context.getString(R.string.upload_error) + "," + context.getString(R.string.click_to_retry)); |
|
107 |
+ holder.itemView.setOnClickListener(new View.OnClickListener() { |
|
108 |
+ @Override |
|
109 |
+ public void onClick(View view) { |
|
110 |
+ Intent intent = new Intent(App.getAppContext(), UploadService.class); |
|
111 |
+ intent.putExtra("photo", item); |
|
112 |
+ App.getAppContext().startService(intent); |
|
113 |
+ item.uploadStatus = PhotoBean.UploadStatus.STATUS_NO_BEGIN; |
|
114 |
+ notifyItemChanged(position); |
|
115 |
+ Toast.makeText(context, R.string.add_to_upload_queue, Toast.LENGTH_SHORT).show(); |
|
116 |
+ } |
|
117 |
+ }); |
|
123 | 118 |
} else if (item.uploadStatus == PhotoBean.UploadStatus.STATUS_SUCCESS) { |
124 | 119 |
holder.uploadStatusText.setText(context.getString(R.string.upload_success)); |
125 | 120 |
} else if (item.uploadStatus == PhotoBean.UploadStatus.STATUS_NO_BEGIN) { |
@@ -145,10 +140,6 @@ public class PhotoRecyclerAdapter extends RecyclerView.Adapter<PhotoRecyclerAdap |
||
145 | 140 |
|
146 | 141 |
@BindView(R.id.iv_session_photo_item) |
147 | 142 |
ImageView photo; |
148 |
- @BindView(R.id.layout_upload_fail) |
|
149 |
- View errorLayout; |
|
150 |
- @BindView(R.id.iv_upload_retry) |
|
151 |
- ImageView retryImg; |
|
152 | 143 |
@BindView(R.id.tv_upload_status) |
153 | 144 |
TextView uploadStatusText; |
154 | 145 |
|
@@ -159,6 +159,17 @@ public class SessionPresenter implements SessionContract.Presenter, SessionInter |
||
159 | 159 |
} |
160 | 160 |
|
161 | 161 |
@Override |
162 |
+ public void onPhotoUploadStart(PhotoBean bean) { |
|
163 |
+ for(PhotoBean photoBean : photoList){ |
|
164 |
+ if(photoBean.photoId == bean.photoId){ |
|
165 |
+ photoBean.uploadStatus = PhotoBean.UploadStatus.STATUS_UPLOADING; |
|
166 |
+ sessionView.refreshRecyclerView(); |
|
167 |
+ break; |
|
168 |
+ } |
|
169 |
+ } |
|
170 |
+ } |
|
171 |
+ |
|
172 |
+ @Override |
|
162 | 173 |
public void onPhotoUploaded(PhotoBean bean) { |
163 | 174 |
for(PhotoBean photoBean : photoList){ |
164 | 175 |
if(photoBean.photoId == bean.photoId){ |
@@ -18,37 +18,8 @@ |
||
18 | 18 |
android:gravity="center" |
19 | 19 |
android:text="@string/auto_upload_after_seconds" |
20 | 20 |
android:textColor="@color/white" |
21 |
+ android:layout_alignParentBottom="true" |
|
21 | 22 |
android:textSize="16sp" |
22 | 23 |
android:background="@color/half_transparent"/> |
23 | 24 |
|
24 |
- <RelativeLayout |
|
25 |
- android:id="@+id/layout_upload_fail" |
|
26 |
- android:layout_width="wrap_content" |
|
27 |
- android:layout_height="wrap_content" |
|
28 |
- android:layout_alignBottom="@+id/iv_session_photo_item" |
|
29 |
- android:layout_alignLeft="@+id/iv_session_photo_item" |
|
30 |
- android:layout_alignTop="@+id/iv_session_photo_item" |
|
31 |
- android:layout_alignRight="@+id/iv_session_photo_item" |
|
32 |
- android:background="@color/black" |
|
33 |
- android:alpha="0.6" |
|
34 |
- android:visibility="gone"> |
|
35 |
- |
|
36 |
- <ImageView |
|
37 |
- android:id="@+id/iv_upload_retry" |
|
38 |
- android:layout_width="40dp" |
|
39 |
- android:layout_height="40dp" |
|
40 |
- android:padding="10dp" |
|
41 |
- android:layout_centerInParent="true" |
|
42 |
- android:src="@drawable/retry"/> |
|
43 |
- <TextView |
|
44 |
- android:id="@+id/tv_upload_fail" |
|
45 |
- android:layout_width="wrap_content" |
|
46 |
- android:layout_height="wrap_content" |
|
47 |
- android:layout_below="@id/iv_upload_retry" |
|
48 |
- android:layout_centerHorizontal="true" |
|
49 |
- android:text="@string/click_to_retry" |
|
50 |
- android:textSize="16sp" |
|
51 |
- android:textColor="@color/white"/> |
|
52 |
- |
|
53 |
- </RelativeLayout> |
|
54 | 25 |
</RelativeLayout> |